{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\n",
    "\n",
    "<p align=\"center\">\n",
    "    <img src=\"https://github.com/GeostatsGuy/GeostatsPy/blob/master/TCG_color_logo.png?raw=true\" width=\"220\" height=\"240\" />\n",
    "\n",
    "</p>\n",
    "\n",
    "## Subsurface Data Analytics \n",
    "\n",
    "### Principal Component Analysis for Subsurface Data Analytics in Python \n",
    "\n",
    "\n",
    "#### Michael Pyrcz, Associate Professor, University of Texas at Austin \n",
    "\n",
    "##### [Twitter](https://twitter.com/geostatsguy) | [GitHub](https://github.com/GeostatsGuy) | [Website](http://michaelpyrcz.com) | [GoogleScholar](https://scholar.google.com/citations?user=QVZ20eQAAAAJ&hl=en&oi=ao) | [Book](https://www.amazon.com/Geostatistical-Reservoir-Modeling-Michael-Pyrcz/dp/0199731446) | [YouTube](https://www.youtube.com/channel/UCLqEr-xV-ceHdXXXrTId5ig)  | [LinkedIn](https://www.linkedin.com/in/michael-pyrcz-61a648a1)\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Principal Component Analysis for Subsurface Data Analytics in Python \n",
    "\n",
    "Here's a simple workflow, demonstration of principal component analysis for subsurface modeling workflows. This should help you get started with building subsurface models that integrate uncertainty in the sample statistics. \n",
    "\n",
    "#### Princiapl Component Analysis\n",
    "\n",
    "Principal Component Analysis one of a variety of methods for dimensional reduction:\n",
    "\n",
    "Dimensional reduction transforms the data to a lower dimension\n",
    "\n",
    "* Given features, $𝑋_1,\\dots,𝑋_𝑚$  we would require ${m \\choose 2}=\\frac{𝑚 \\cdot (𝑚−1)}{2}$ scatter plots to visualize just the two-dimensional scatter plots.\n",
    "\n",
    "* Once we have 4 or more variables understanding our data gets very hard.\n",
    "\n",
    "* Recall the curse of dimensionality, impact inference, modeling and visualization. \n",
    "\n",
    "One solution, is to find a good lower dimensional, $𝑝$,  representation of the original dimensions $𝑚$\n",
    "\n",
    "Benefits of Working in a Reduced Dimensional Representation:\n",
    "\n",
    "1. Data storage / Computational Time\n",
    "\n",
    "2. Easier visualization\n",
    "\n",
    "3. Also takes care of multicollinearity \n",
    "\n",
    "#### Orthogonal Transformation \n",
    "\n",
    "Convert a set of observations into a set of linearly uncorrelated variables known as principal components\n",
    "\n",
    "* The number of principal components ($k$) available are min⁡($𝑛−1,𝑚$) \n",
    "\n",
    "* Limited by the variables/features, $𝑚$, and the number of data\n",
    "\n",
    "Components are ordered\n",
    "\n",
    "* First component describes the larges possible variance / accounts for as much variability as possible\n",
    "* Next component describes the largest possible remaining variance \n",
    "* Up to the maximum number of principal components\n",
    "\n",
    "Eigen Values / Eigen Vectors\n",
    "\n",
    "* The Eigen values are the variance explained for each component. \n",
    "* The Eigen vectors of the data covariance matrix are the principal components and the Eigen  \n",
    "* Out of scope – just making the linkage\n",
    "\n",
    "\n",
    "#### Objective \n",
    "\n",
    "In the PGE 383: Stochastic Subsurface Modeling class I want to provide hands-on experience with building subsurface modeling workflows. Python provides an excellent vehicle to accomplish this. I have coded a package called GeostatsPy with GSLIB: Geostatistical Library (Deutsch and Journel, 1998) functionality that provides basic building blocks for building subsurface modeling workflows. \n",
    "\n",
    "The objective is to remove the hurdles of subsurface modeling workflow construction by providing building blocks and sufficient examples. This is not a coding class per se, but we need the ability to 'script' workflows working with numerical methods.    \n",
    "\n",
    "#### Getting Started\n",
    "\n",
    "Here's the steps to get setup in Python with the GeostatsPy package:\n",
    "\n",
    "1. Install Anaconda 3 on your machine (https://www.anaconda.com/download/). \n",
    "2. From Anaconda Navigator (within Anaconda3 group), go to the environment tab, click on base (root) green arrow and open a terminal. \n",
    "3. In the terminal type: pip install geostatspy. \n",
    "4. Open Jupyter and in the top block get started by copy and pasting the code block below from this Jupyter Notebook to start using the geostatspy functionality. \n",
    "\n",
    "You will need to copy the data file to your working directory.  They are available here:\n",
    "\n",
    "* Tabular data - unconv_MV.csv at https://git.io/fjmBH.\n",
    "\n",
    "There are exampled below with these functions. You can go here to see a list of the available functions, https://git.io/fh4eX, other example workflows and source code. \n",
    "\n",
    "#### Install Packages\n",
    "\n",
    "We will include the standard packages for DataFrames and ndarrays and add sci-kit-learn (sklearn) for machine learning."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os                                                 # to set current working directory \n",
    "from sklearn.decomposition import PCA                     # PCA program from scikit learn (package for machine learning)\n",
    "from sklearn.preprocessing import StandardScaler          # standardize variables to mean of 0.0 and variance of 1.0\n",
    "import pandas as pd                                       # DataFrames and plotting\n",
    "import pandas.plotting as pd_plot                         # matrix scatter plots\n",
    "import numpy as np                                        # arrays and matrix math\n",
    "import matplotlib.pyplot as plt                           # plotting\n",
    "import matplotlib.ticker as mtick\n",
    "cmap = plt.cm.inferno\n",
    "import seaborn as sns                                     # advanced plotting"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "If you get a package import error, you may have to first install some of these packages. This can usually be accomplished by opening up a command window on Windows and then typing 'python -m pip install [package-name]'. More assistance is available with the respective package docs.  \n",
    "\n",
    "#### Declare functions\n",
    "\n",
    "Let's define a single function to streamline plotting correlation matrices. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_corr(dataframe,size=10):                         # plots a graphical correlation matrix \n",
    "    from matplotlib.colors import ListedColormap          # make a custom colormap\n",
    "    my_colormap = plt.cm.get_cmap('RdBu_r', 256)          \n",
    "    newcolors = my_colormap(np.linspace(0, 1, 256))\n",
    "    white = np.array([256/256, 256/256, 256/256, 1])\n",
    "    newcolors[65:191, :] = white                          # mask all correlations less than abs(0.8)\n",
    "    newcmp = ListedColormap(newcolors)\n",
    "    corr = dataframe.corr()\n",
    "    fig, ax = plt.subplots(figsize=(size, size))\n",
    "    im = ax.matshow(corr,vmin = -1.0, vmax = 1.0,cmap = newcmp)\n",
    "    plt.xticks(range(len(corr.columns)), corr.columns);\n",
    "    plt.yticks(range(len(corr.columns)), corr.columns);\n",
    "    plt.colorbar(im, orientation = 'vertical')\n",
    "    plt.title('Correlation Matrix')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Set the working directory\n",
    "\n",
    "I always like to do this so I don't lose files and to simplify subsequent read and writes (avoid including the full address each time).\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "#os.chdir(\"c:/PGE383\")                                 # set the working directory"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "You will have to update the part in quotes with your own working directory and the format is different on a Mac (e.g. \"~/PGE\").  \n",
    "\n",
    "#### Read the data table\n",
    "\n",
    "First copy the \"unconv_MV.csv\" comma delimited file from https://github.com/GeostatsGuy/GeoDataSets to your working directory, then run this command to read the file into a DataFrame object (part of Pandas package).  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "#my_data = pd.read_csv(\"unconv_MV.csv\")  \n",
    "my_data = pd.read_csv(r\"https://raw.githubusercontent.com/GeostatsGuy/GeoDataSets/master/unconv_MV.csv\")                    # load the comma delimited data file"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's visualize the first several rows of our data stored in a DataFrame so we can make sure we successfully loaded the data file."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>WellIndex</th>\n",
       "      <th>Por</th>\n",
       "      <th>LogPerm</th>\n",
       "      <th>AI</th>\n",
       "      <th>Brittle</th>\n",
       "      <th>TOC</th>\n",
       "      <th>VR</th>\n",
       "      <th>Production</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>15.91</td>\n",
       "      <td>1.67</td>\n",
       "      <td>3.06</td>\n",
       "      <td>14.05</td>\n",
       "      <td>1.36</td>\n",
       "      <td>1.85</td>\n",
       "      <td>177.381958</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>15.34</td>\n",
       "      <td>1.65</td>\n",
       "      <td>2.60</td>\n",
       "      <td>31.88</td>\n",
       "      <td>1.37</td>\n",
       "      <td>1.79</td>\n",
       "      <td>1479.767778</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>20.45</td>\n",
       "      <td>2.02</td>\n",
       "      <td>3.13</td>\n",
       "      <td>63.67</td>\n",
       "      <td>1.79</td>\n",
       "      <td>2.53</td>\n",
       "      <td>4421.221583</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>11.95</td>\n",
       "      <td>1.14</td>\n",
       "      <td>3.90</td>\n",
       "      <td>58.81</td>\n",
       "      <td>0.40</td>\n",
       "      <td>2.03</td>\n",
       "      <td>1488.317629</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>19.53</td>\n",
       "      <td>1.83</td>\n",
       "      <td>2.57</td>\n",
       "      <td>43.75</td>\n",
       "      <td>1.40</td>\n",
       "      <td>2.11</td>\n",
       "      <td>5261.094919</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>6</td>\n",
       "      <td>19.47</td>\n",
       "      <td>2.04</td>\n",
       "      <td>2.73</td>\n",
       "      <td>54.37</td>\n",
       "      <td>1.42</td>\n",
       "      <td>2.12</td>\n",
       "      <td>5497.005506</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>7</td>\n",
       "      <td>12.70</td>\n",
       "      <td>1.30</td>\n",
       "      <td>3.70</td>\n",
       "      <td>43.03</td>\n",
       "      <td>0.45</td>\n",
       "      <td>1.95</td>\n",
       "      <td>1784.266285</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   WellIndex    Por  LogPerm    AI  Brittle   TOC    VR   Production\n",
       "0          1  15.91     1.67  3.06    14.05  1.36  1.85   177.381958\n",
       "1          2  15.34     1.65  2.60    31.88  1.37  1.79  1479.767778\n",
       "2          3  20.45     2.02  3.13    63.67  1.79  2.53  4421.221583\n",
       "3          4  11.95     1.14  3.90    58.81  0.40  2.03  1488.317629\n",
       "4          5  19.53     1.83  2.57    43.75  1.40  2.11  5261.094919\n",
       "5          6  19.47     2.04  2.73    54.37  1.42  2.12  5497.005506\n",
       "6          7  12.70     1.30  3.70    43.03  0.45  1.95  1784.266285"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_data[:7]                                               # preview the first 7 rows of the dataframe"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's remove the well index and check the summary summary statistics."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Por</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>14.950460</td>\n",
       "      <td>3.029634</td>\n",
       "      <td>5.400000</td>\n",
       "      <td>12.85750</td>\n",
       "      <td>14.98500</td>\n",
       "      <td>17.080000</td>\n",
       "      <td>24.65000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LogPerm</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>1.398880</td>\n",
       "      <td>0.405966</td>\n",
       "      <td>0.120000</td>\n",
       "      <td>1.13000</td>\n",
       "      <td>1.39000</td>\n",
       "      <td>1.680000</td>\n",
       "      <td>2.58000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AI</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>2.982610</td>\n",
       "      <td>0.577629</td>\n",
       "      <td>0.960000</td>\n",
       "      <td>2.57750</td>\n",
       "      <td>3.01000</td>\n",
       "      <td>3.360000</td>\n",
       "      <td>4.70000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Brittle</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>49.719480</td>\n",
       "      <td>15.077006</td>\n",
       "      <td>-10.500000</td>\n",
       "      <td>39.72250</td>\n",
       "      <td>49.68000</td>\n",
       "      <td>59.170000</td>\n",
       "      <td>93.47000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TOC</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>1.003810</td>\n",
       "      <td>0.504978</td>\n",
       "      <td>-0.260000</td>\n",
       "      <td>0.64000</td>\n",
       "      <td>0.99500</td>\n",
       "      <td>1.360000</td>\n",
       "      <td>2.71000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>VR</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>1.991170</td>\n",
       "      <td>0.308194</td>\n",
       "      <td>0.900000</td>\n",
       "      <td>1.81000</td>\n",
       "      <td>2.00000</td>\n",
       "      <td>2.172500</td>\n",
       "      <td>2.90000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Production</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>2247.295809</td>\n",
       "      <td>1464.256312</td>\n",
       "      <td>2.713535</td>\n",
       "      <td>1191.36956</td>\n",
       "      <td>1976.48782</td>\n",
       "      <td>3023.594214</td>\n",
       "      <td>12568.64413</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             count         mean          std        min         25%  \\\n",
       "Por         1000.0    14.950460     3.029634   5.400000    12.85750   \n",
       "LogPerm     1000.0     1.398880     0.405966   0.120000     1.13000   \n",
       "AI          1000.0     2.982610     0.577629   0.960000     2.57750   \n",
       "Brittle     1000.0    49.719480    15.077006 -10.500000    39.72250   \n",
       "TOC         1000.0     1.003810     0.504978  -0.260000     0.64000   \n",
       "VR          1000.0     1.991170     0.308194   0.900000     1.81000   \n",
       "Production  1000.0  2247.295809  1464.256312   2.713535  1191.36956   \n",
       "\n",
       "                   50%          75%          max  \n",
       "Por           14.98500    17.080000     24.65000  \n",
       "LogPerm        1.39000     1.680000      2.58000  \n",
       "AI             3.01000     3.360000      4.70000  \n",
       "Brittle       49.68000    59.170000     93.47000  \n",
       "TOC            0.99500     1.360000      2.71000  \n",
       "VR             2.00000     2.172500      2.90000  \n",
       "Production  1976.48782  3023.594214  12568.64413  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_data = my_data.iloc[:,1:8]                             # copy all rows and columns 1 through 8, note 0 column is removed\n",
    "my_data.describe().transpose()                            # calculate summary statistics for the data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Good that we checked the summary statistics, we have some negative values for brittleness and total organic carbon. The is physically imposible.  \n",
    "\n",
    "* The values must be in error. We know the lowest possible values are 0.0, so we will truncate on 0.0.  \n",
    "\n",
    "We use the:\n",
    "\n",
    "```python\n",
    "df.get_numerical_data()\n",
    "```\n",
    "\n",
    "DataFrame member function to get a shallow copy of the data from the DataFrame.  \n",
    "\n",
    "Since it is a shallow copy, any changes we make to the copy are made to the data in the original DataFrame.  \n",
    "\n",
    "* This allows us to apply this simple conditional statement to all the data values in the DataFrame all at once."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Por</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>14.950460</td>\n",
       "      <td>3.029634</td>\n",
       "      <td>5.400000</td>\n",
       "      <td>12.85750</td>\n",
       "      <td>14.98500</td>\n",
       "      <td>17.080000</td>\n",
       "      <td>24.65000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LogPerm</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>1.398880</td>\n",
       "      <td>0.405966</td>\n",
       "      <td>0.120000</td>\n",
       "      <td>1.13000</td>\n",
       "      <td>1.39000</td>\n",
       "      <td>1.680000</td>\n",
       "      <td>2.58000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>AI</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>2.982610</td>\n",
       "      <td>0.577629</td>\n",
       "      <td>0.960000</td>\n",
       "      <td>2.57750</td>\n",
       "      <td>3.01000</td>\n",
       "      <td>3.360000</td>\n",
       "      <td>4.70000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Brittle</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>49.731480</td>\n",
       "      <td>15.033593</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>39.72250</td>\n",
       "      <td>49.68000</td>\n",
       "      <td>59.170000</td>\n",
       "      <td>93.47000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>TOC</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>1.006170</td>\n",
       "      <td>0.499838</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.64000</td>\n",
       "      <td>0.99500</td>\n",
       "      <td>1.360000</td>\n",
       "      <td>2.71000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>VR</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>1.991170</td>\n",
       "      <td>0.308194</td>\n",
       "      <td>0.900000</td>\n",
       "      <td>1.81000</td>\n",
       "      <td>2.00000</td>\n",
       "      <td>2.172500</td>\n",
       "      <td>2.90000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Production</th>\n",
       "      <td>1000.0</td>\n",
       "      <td>2247.295809</td>\n",
       "      <td>1464.256312</td>\n",
       "      <td>2.713535</td>\n",
       "      <td>1191.36956</td>\n",
       "      <td>1976.48782</td>\n",
       "      <td>3023.594214</td>\n",
       "      <td>12568.64413</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "             count         mean          std       min         25%  \\\n",
       "Por         1000.0    14.950460     3.029634  5.400000    12.85750   \n",
       "LogPerm     1000.0     1.398880     0.405966  0.120000     1.13000   \n",
       "AI          1000.0     2.982610     0.577629  0.960000     2.57750   \n",
       "Brittle     1000.0    49.731480    15.033593  0.000000    39.72250   \n",
       "TOC         1000.0     1.006170     0.499838  0.000000     0.64000   \n",
       "VR          1000.0     1.991170     0.308194  0.900000     1.81000   \n",
       "Production  1000.0  2247.295809  1464.256312  2.713535  1191.36956   \n",
       "\n",
       "                   50%          75%          max  \n",
       "Por           14.98500    17.080000     24.65000  \n",
       "LogPerm        1.39000     1.680000      2.58000  \n",
       "AI             3.01000     3.360000      4.70000  \n",
       "Brittle       49.68000    59.170000     93.47000  \n",
       "TOC            0.99500     1.360000      2.71000  \n",
       "VR             2.00000     2.172500      2.90000  \n",
       "Production  1976.48782  3023.594214  12568.64413  "
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "num = my_data._get_numeric_data()                         # get the numerical values\n",
    "num[num < 0] = 0                                          # truncate negative values to 0.0\n",
    "my_data.describe().transpose()                            # calculate summary statistics for the data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This dataset has variables from 1,000 unconventional wells including:\n",
    "\n",
    "* well average porosity\n",
    "* log transform of permeability (to linearize the relationships with other variables)\n",
    "* accoustic impedance (kg/m^3 x m/s x 10^6)\n",
    "* brittness ratio (%)\n",
    "* total organic carbon (%)\n",
    "* vitrinite reflectance (%)\n",
    "* initial production 90 day average (MCFPD).  \n",
    "\n",
    "Note, the dataset is synthetic.\n",
    "\n",
    "#### Calculate the correlation matrix \n",
    "\n",
    "For dimensional reduction, a good first step is data visualization.  \n",
    "\n",
    "Let's start with the correlation matrix.  \n",
    "\n",
    "We can calculate it and view it in the console with these commands.\n",
    "\n",
    "```python\n",
    "corr_matrix = np.corrcoef(my_data, rowvar = False)\n",
    "```\n",
    "\n",
    "the input data is a 2D ndarray and $rowvar$ specifies if the variables are in the rows isntead of columns. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 1.    0.81 -0.51 -0.25  0.71  0.08  0.69]\n",
      " [ 0.81  1.   -0.32 -0.15  0.51  0.05  0.57]\n",
      " [-0.51 -0.32  1.    0.17 -0.55  0.49 -0.33]\n",
      " [-0.25 -0.15  0.17  1.   -0.24  0.3  -0.07]\n",
      " [ 0.71  0.51 -0.55 -0.24  1.    0.31  0.5 ]\n",
      " [ 0.08  0.05  0.49  0.3   0.31  1.    0.14]\n",
      " [ 0.69  0.57 -0.33 -0.07  0.5   0.14  1.  ]]\n"
     ]
    }
   ],
   "source": [
    "corr_matrix = np.corrcoef(my_data, rowvar = False)\n",
    "print(np.around(corr_matrix,2))                           # print the correlation matrix to 2 decimals"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Note the 1.0 diagonal resulting from the correlation of each variable with themselves.  \n",
    "\n",
    "Let's use our function declared above to make a graphical correlation matrix visualization.  \n",
    "\n",
    "* This may inprove our ability to spot features. It relies on the built in correlation matrix method with Numpy DataFrames and MatPlotLib for plotting."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 504x504 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_corr(my_data,7)                                      # using our correlation matrix visualization function\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This looks good.  There is a mix of bivariate, linear correlation magnitudes. Of course, correlation coeffficients are limited to degree of linear correlations.  \n",
    "\n",
    "#### Check Matrix Scatter Plots\n",
    "\n",
    "For more complete information, let's look at the matrix scatter plot from the Pandas package. \n",
    "\n",
    "* covariance and correlation are sensitive to outliers and nonlinearity\n",
    "\n",
    "```python\n",
    "pd_plot.scatter_matrix(my_data)\n",
    "```\n",
    "\n",
    "the $alpha$ alows us to use semitransprent points for easier visualization with dense scatter plots.\n",
    "\n",
    "the $hist_kwds$ is a set of parameters for the histograms on the diagonal elements.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 49 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "pd_plot.scatter_matrix(my_data, alpha = 0.1,              # pandas matrix scatter plot\n",
    "    figsize=(6, 6),color = 'black', hist_kwds={'color':['grey']})\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Simple Bivariate Example\n",
    "\n",
    "Let's simplify the problem to bivariate (2 features), porosity and the log transform of permeability and reduce the number of wells from 1,000 to 100."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>count</th>\n",
       "      <th>mean</th>\n",
       "      <th>std</th>\n",
       "      <th>min</th>\n",
       "      <th>25%</th>\n",
       "      <th>50%</th>\n",
       "      <th>75%</th>\n",
       "      <th>max</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Por</th>\n",
       "      <td>100.0</td>\n",
       "      <td>14.9856</td>\n",
       "      <td>2.823016</td>\n",
       "      <td>9.23</td>\n",
       "      <td>12.9275</td>\n",
       "      <td>14.720</td>\n",
       "      <td>16.705</td>\n",
       "      <td>21.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>LogPerm</th>\n",
       "      <td>100.0</td>\n",
       "      <td>1.3947</td>\n",
       "      <td>0.390947</td>\n",
       "      <td>0.36</td>\n",
       "      <td>1.1475</td>\n",
       "      <td>1.365</td>\n",
       "      <td>1.650</td>\n",
       "      <td>2.48</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "         count     mean       std   min      25%     50%     75%    max\n",
       "Por      100.0  14.9856  2.823016  9.23  12.9275  14.720  16.705  21.00\n",
       "LogPerm  100.0   1.3947  0.390947  0.36   1.1475   1.365   1.650   2.48"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "my_data_por_perm = my_data.iloc[0:100,0:2]                # extract just por and logperm, 100 samples\n",
    "my_data_por_perm.describe().transpose()                   # calculate summary statistics for the data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's first check the univariate statistics of Por and LogPerm."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, (ax1, ax2) = plt.subplots(1, 2, sharey=True)\n",
    "ax1.hist(my_data_por_perm[\"Por\"], alpha = 0.8, color = 'darkorange', edgecolor = 'black', bins=20)\n",
    "ax1.set_title('Porosity')\n",
    "ax2.hist(my_data_por_perm[\"LogPerm\"], alpha = 0.8, color = 'darkorange', edgecolor = 'black', bins=20)\n",
    "ax2.set_title('Log[Permeability]')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The distributions may actually be Gaussian distributed, regardless they are well behaved, we cannot observe obvious gaps nor truncations.  \n",
    "\n",
    "Let's look at a scatter plot of porosity vs. log permeability.\n",
    "\n",
    "This would be the basic command from *matplotlib* to make a scatter plot. \n",
    "\n",
    "```python\n",
    "plt.scatter(my_data_por_perm[\"Por\"],my_data_por_perm[\"LogPerm\"]\n",
    "```\n",
    "* the additional parameters are for formatting and labels\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(my_data_por_perm[\"Por\"],my_data_por_perm[\"LogPerm\"],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "plt.title('LogPerm vs. Por'); plt.xlabel('Por'); plt.ylabel('LogPerm')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Calculation of Principal Components\n",
    "\n",
    "With the log of permeability we have a very nice linear relationship with porosity, PCA should work well on this data.  \n",
    "\n",
    "* We are ready to perform PCA with porosity and log of permeability. \n",
    "\n",
    "#### Standardize the Features\n",
    "\n",
    "We must standardize our variables to have a mean equal to zero, $\\bar{x} = 0.0$, and the variance equal to one, $\\sigma^{2}_{x} = 1.0$.  \n",
    "\n",
    "* Otherwise the difference between the scale of porosity and permeability would have a significant impact. This is quite arbitrary!  \n",
    "\n",
    "* What if we convert the logperm feature from log of milliDacry to log of Darcy? or change the porosity to a fraction instead of a percentage?  \n",
    "\n",
    "To remove this effect, we should always standardize unless the two variables have the same units and then the range, variance between them is meaningful."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Original Mean Por 14.99 , Original Mean LogPerm =  1.39\n",
      "Original StDev Por 2.81 , Original StDev LogPerm =  0.39\n",
      "Mean Transformed Por = 0.0 , Mean Transformed LogPerm = -0.0\n",
      "Variance Transformed Por = 1.0000000000000002 , Variance Transformed LogPerm = 1.0\n"
     ]
    }
   ],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "features = ['Por','LogPerm']\n",
    "x = my_data_por_perm.loc[:,features].values\n",
    "mu = np.mean(x, axis=0)\n",
    "sd = np.std(x, axis=0)\n",
    "x = StandardScaler().fit_transform(x)                     # standardize the data features to mean = 0, var = 1.0\n",
    "\n",
    "print(\"Original Mean Por\", np.round(mu[0],2), ', Original Mean LogPerm = ', np.round(mu[1],2)) \n",
    "print(\"Original StDev Por\", np.round(sd[0],2), ', Original StDev LogPerm = ', np.round(sd[1],2)) \n",
    "print('Mean Transformed Por =',np.round(np.mean(x[:,0]),2),', Mean Transformed LogPerm =',np.round(np.mean(x[:,1]),2))\n",
    "print('Variance Transformed Por =',np.var(x[:,0]),', Variance Transformed LogPerm =',np.var(x[:,1]))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1.01010101, 0.80087707],\n",
       "       [0.80087707, 1.01010101]])"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "cov = np.cov(x,rowvar = False)\n",
    "cov"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "\"x\" is a 2D ndarray from Numpy package with the features in columns and the samples in rows.  \n",
    "\n",
    "* Above we comfirmed that the features in the \"x\" 2D array are infact standardized. \n",
    "\n",
    "It is not a bad idea to check the univariate and bivariate distributions of our standardized variables."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x432 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dfS = pd.DataFrame({'sPor': x[:,0], 'sLogPerm': x[:,1]})\n",
    "sns.jointplot(data=dfS,x='sPor',y='sLogPerm',marginal_kws=dict(bins=30),color='darkorange',edgecolor='black')\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=1.0, top=1.1, wspace=0.2, hspace=0.3); plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Everything looks fine and we are ready to apply principal components analysis.\n",
    "\n",
    "#### Principal Component Analysis (PCA)\n",
    "\n",
    "To run PCA with the SciKitLearn machine learning package in Python, we first make a PCA model with a specified number of components and then we 'fit' it to our data. \n",
    "\n",
    "```python\n",
    "n_components = 2\n",
    "pca = PCA(n_components=n_components)\n",
    "pca.fit(x)\n",
    "```\n",
    "As you will see later with dimensional reduction, we can use matrix math with this model and reduce our data to any dimensionality from 1 to the number of features, m. Let's run the model with number of components equal to number of features, m."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "PCA(n_components=2)"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "n_components = 2\n",
    "pca = PCA(n_components=n_components)\n",
    "pca.fit(x)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Component Loadings\n",
    "\n",
    "The first thing we sould do is look at the component loadings.  Let's view them and interpret our result."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[ 0.707  0.707]\n",
      " [ 0.707 -0.707]]\n",
      "First Principal Component = [0.707 0.707]\n",
      "Second Principal Component = [ 0.707 -0.707]\n"
     ]
    }
   ],
   "source": [
    "print(np.round(pca.components_,3))\n",
    "print('First Principal Component = ' + str(np.round(pca.components_[0,:],3)))\n",
    "print('Second Principal Component = ' + str(np.round(pca.components_[1,:],3)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The components are listed as a 2D array (ndarray) with:\n",
    "\n",
    "* principal components on the rows\n",
    "* features on the columns\n",
    "* the rows are sorted so that the first principal component is the top row and the last principal component is the last row.\n",
    "\n",
    "#### Proportion of Variance Explained with Principal Components \n",
    "\n",
    "It is also important to look at the proportion of the variance described by each principal component."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Variance explained by PC1 and PC2 = [0.896 0.104]\n",
      "First Principal Component explains 0.896 of the total variance.\n",
      "Second Principal Component explains 0.104 of the total variance.\n"
     ]
    }
   ],
   "source": [
    "print('Variance explained by PC1 and PC2 =', np.round(pca.explained_variance_ratio_,3))\n",
    "print('First Principal Component explains ' + str(np.round(pca.explained_variance_ratio_[0],3)) + ' of the total variance.')\n",
    "print('Second Principal Component explains ' + str(np.round(pca.explained_variance_ratio_[1],3)) + ' of the total variance.')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Principal Component Scores, Forward and Reverse Projections\n",
    "\n",
    "We can calculate the principle component scores of the original data. \n",
    "\n",
    "* This is effectly a rotation of the data,  aligned with PC1 for the direction of greatest variance.  \n",
    "\n",
    "* We will calculate the principal component scores with the \"transform\" function built into PCA and then visualize as a scatter plot. \n",
    "\n",
    "* Then to \"close the loop\" and check what we have done (and our knowledge) we will reverse the PCA, go from the principal component scores back to the standardized features."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x216 with 3 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "f, (ax101, ax102, ax103) = plt.subplots(1, 3,figsize=(12,3))\n",
    "f.subplots_adjust(wspace=0.7)\n",
    "\n",
    "ax101.scatter(x[:,0],x[:,1], s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax101.set_title('Standardized LogPerm vs. Por'); ax101.set_xlabel('Standardized Por'); ax101.set_ylabel('Standardized LogPerm')\n",
    "ax101.set_xlim([-3,3]); ax101.set_ylim([-3,3]);\n",
    "\n",
    "x_trans = pca.transform(x)                                # calculate the principal component scores\n",
    "ax102.scatter(x_trans[:,0],-1*x_trans[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax102.set_title('Principal Component Scores'); ax102.set_xlabel('PC1'); ax102.set_ylabel('PC2')\n",
    "ax102.set_xlim([-3,3]); ax102.set_ylim([-3,3]);\n",
    "\n",
    "x_reverse = pca.inverse_transform(x_trans)                        # reverse the principal component scores to standardized values\n",
    "ax103.scatter(x_reverse[:,0],x_reverse[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax103.set_title('Reverse PCA'); ax103.set_xlabel('Standardized Por'); ax103.set_ylabel('Standardized LogPerm')\n",
    "ax103.set_xlim([-3,3]); ax103.set_ylim([-3,3]);\n",
    "\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=1.3, top=1.5, wspace=0.2, hspace=0.3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The standardized original and reverse PCA cross plots should look exactly the same. If so, the method is working.\n",
    "\n",
    "#### Conservation of Variance\n",
    "\n",
    "Let's check the variances of the principle component scores, since we have calculated them now.\n",
    "\n",
    "* we calculate the variance for each of the original features\n",
    "\n",
    "* then sum to get the original total variance\n",
    "\n",
    "* we calculate the variance for each of the transformed, principal component scores\n",
    "\n",
    "* then we sum to get the transformed total variance\n",
    "\n",
    "We note the:\n",
    "\n",
    "* the first principal component score has larger variance than the second component scores\n",
    "\n",
    "* total variance is preserved over the transformation, the sum of variance is the same for original features and m principal compenent scores"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Variance of the 2 features:\n",
      "[1. 1.]\n",
      "\n",
      "Total Variance from Original Features:\n",
      "2.0\n",
      "\n",
      "Variance of the 2 principle components:\n",
      "[1.79 0.21]\n",
      "\n",
      "Total Variance from Original Features:\n",
      "2.0\n"
     ]
    }
   ],
   "source": [
    "print('Variance of the 2 features:')\n",
    "print(np.var(x, axis = 0))\n",
    "\n",
    "print('\\nTotal Variance from Original Features:')\n",
    "print(np.sum(np.var(x, axis = 0)))\n",
    "\n",
    "print('\\nVariance of the 2 principle components:')\n",
    "print(np.round(np.var(x_trans, axis = 0),2))\n",
    "\n",
    "print('\\nTotal Variance from Original Features:')\n",
    "print(round(np.sum(np.var(x_trans, axis = 0)),2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Independence of Principal Component Scores\n",
    "\n",
    "Let's check the correlations for the original features vs. our projected features."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print('\\nCorrelation Matrix of the 2 original features components:')\n",
    "print(np.round(np.corrcoef(x, rowvar = False),2))\n",
    "\n",
    "print('\\nCorrelation Matrix of the 2 principle components\\' scores:')\n",
    "print(np.round(np.corrcoef(x_trans, rowvar = False),2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We have projected our original features with high correlation to 2 new features with no correlation!\n",
    "\n",
    "#### Principal Component Analysis By-hand with Eigenvalue and Eigen Vector Calculator\n",
    "\n",
    "Let's show PCA by-hand with the standardized features and the Eigen calculation."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from numpy.linalg import eig\n",
    "eigen_values,eigen_vectors = eig(cov)\n",
    "print('Eigen Vectors:\\n' +  str(np.round(eigen_vectors,2)))\n",
    "print('First Eigen Vector: ' + str(eigen_vectors[:,0]))\n",
    "print('Second Eigen Vector: ' + str(eigen_vectors[:,1]))\n",
    "print('Eigen Values:\\n' +  str(np.round(eigen_values,2)))\n",
    "PC = eigen_vectors.T.dot(x.T)\n",
    "plt.subplot(121)\n",
    "plt.scatter(PC[0,:],PC[1,:],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "plt.title('Principal Component Scores By-hand with numpy.linalg Eig Function'); plt.xlabel('PC1'); plt.ylabel('PC2')\n",
    "plt.xlim([-3,3]); plt.ylim([-3,3]);\n",
    "\n",
    "plt.subplot(122)\n",
    "plt.scatter(x_trans[:,0],-1*x_trans[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "plt.title('Principal Component Scores with scikit-learn PCA'); plt.xlabel('PC1'); plt.ylabel('PC2')\n",
    "plt.xlim([-3,3]); plt.ylim([-3,3]);\n",
    "\n",
    "plt.subplots_adjust(left=0.0, bottom=0.0, right=2.3, top=1.5, wspace=0.2, hspace=0.3)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Demostration of Dimensional Reduction\n",
    "\n",
    "Now let's attempt **dimensional reduction** by only retaining the first principle component.  We will go from original values to predictions of original values. Recall we were able to explain about 90% of the variance with the first principal component so the result should look 'pretty good', right?  We will do the whole thing by hand to make it as simple/understandable as possible for this first time through.  Later we will be much more compact.  The steps: \n",
    "\n",
    "1. start with the original porosity and permeability data \n",
    "2. standardize such that Por and LogPerm have a mean of 0.0 and a variance of 1.0\n",
    "3. calculate the 2 principal component model, visualize the principal component scores\n",
    "4. remove the 2nd principal component by setting the associated component scores to 0.0\n",
    "5. reverse the principal component by matrix multiplication of the scores with the component loadings\n",
    "6. apply matrix math to restore the original mean and variance"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "nComp = 1\n",
    "f, ((ax201, ax202), (ax203, ax204), (ax205, ax206)) = plt.subplots(3, 2,figsize=(15,18))\n",
    "f.subplots_adjust(wspace=0.5,hspace = 0.3)\n",
    "\n",
    "ax201.scatter(my_data_por_perm[\"Por\"],my_data_por_perm[\"LogPerm\"],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax201.set_title('1. LogPerm vs. Por'); ax201.set_xlabel('Por'); ax201.set_ylabel('LogPerm')\n",
    "ax201.set_xlim([8,22]); ax201.set_ylim([0,2.5])\n",
    "\n",
    "mu = np.mean(np.vstack((my_data_por_perm[\"Por\"].values,my_data_por_perm[\"LogPerm\"].values)), axis=1)\n",
    "sd = np.std(np.vstack((my_data_por_perm[\"Por\"].values,my_data_por_perm[\"LogPerm\"].values)), axis=1)\n",
    "x = StandardScaler().fit_transform(x)                     # standardize the data features to mean = 0, var = 1.0\n",
    "\n",
    "ax202.scatter(x[:,0],x[:,1], s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax202.set_title('2. Standardized LogPerm vs. Por'); ax202.set_xlabel('Standardized Por'); ax202.set_ylabel('Standardized LogPerm')\n",
    "ax202.set_xlim([-3.5,3.5]); ax202.set_ylim([-3.5,3.5])\n",
    "\n",
    "n_components = 2                                          # build principal component model with 2 components\n",
    "pca = PCA(n_components=n_components)\n",
    "pca.fit(x)\n",
    "\n",
    "x_trans = pca.transform(x)                                # calculate principal component scores\n",
    "ax203.scatter(x_trans[:,0],-1*x_trans[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax203.set_title('3. Principal Component Scores'); ax203.set_xlabel('PC1'); ax203.set_ylabel('PC2')\n",
    "ax203.set_xlim([-3.5,3.5]); ax203.set_ylim([-3.5,3.5])\n",
    "\n",
    "x_trans[:,1] = 0.0                                         # zero / remove the 2nd principal component \n",
    "\n",
    "ax204.scatter(x_trans[:,0],x_trans[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax204.set_title('4. Only 1st Principal Component Scores'); ax204.set_xlabel('PC1'); ax204.set_ylabel('PC2')\n",
    "ax204.set_xlim([-3.5,3.5]); ax204.set_ylim([-3.5,3.5])\n",
    "\n",
    "xhat = pca.inverse_transform(x_trans)                             # reverse the principal component scores to standardized values\n",
    "ax205.scatter(xhat[:,0],xhat[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax205.set_title('5. Reverse PCA'); ax205.set_xlabel('Standardized Por'); ax205.set_ylabel('Standardized LogPerm')\n",
    "ax205.set_xlim([-3.5,3.5]); ax205.set_ylim([-3.5,3.5])\n",
    "\n",
    "xhat = np.dot(pca.inverse_transform(x)[:,:nComp], pca.components_[:nComp,:])\n",
    "xhat = sd*xhat + mu                                       # remove the standardization\n",
    "\n",
    "ax206.scatter(my_data_por_perm[\"Por\"],my_data_por_perm[\"LogPerm\"],s=None, c=\"blue\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.6, linewidths=1.0, edgecolors=\"black\")\n",
    "ax206.scatter(xhat[:,0],xhat[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax206.set_title('6. De-standardized Reverse PCA'); ax206.set_xlabel('Por'); ax206.set_ylabel('LogPerm')\n",
    "ax206.set_xlim([8,22]); ax206.set_ylim([0,2.5])\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's put the original data and the resulting lower dimensional model side-by-side and check the resulting variances."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "f, (ax201, ax206) = plt.subplots(1, 2,figsize=(15,6))\n",
    "f.subplots_adjust(wspace=0.5,hspace = 0.3)\n",
    "\n",
    "ax201.scatter(my_data_por_perm[\"Por\"],my_data_por_perm[\"LogPerm\"],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax201.set_title('1. LogPerm vs. Por'); ax201.set_xlabel('Por'); ax201.set_ylabel('LogPerm')\n",
    "ax201.set_xlim([8,22]); ax201.set_ylim([0,2.5])\n",
    "\n",
    "ax206.scatter(xhat[:,0],xhat[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.8, linewidths=1.0, edgecolors=\"black\")\n",
    "ax206.set_title('6. De-standardized Reverse PCA'); ax206.set_xlabel('Por'); ax206.set_ylabel('LogPerm')\n",
    "ax206.set_xlim([8,22]); ax206.set_ylim([0,2.5])\n",
    "plt.show()\n",
    "\n",
    "var_por = np.var(my_data_por_perm[\"Por\"]); var_por_hat = np.var(xhat[:,0]);\n",
    "var_logperm = np.var(my_data_por_perm[\"LogPerm\"]); var_logperm_hat = np.var(xhat[:,1]);\n",
    "print('Variance Por =',np.round(var_por,3),', Variance Reduced Dimensional Por =',np.round(var_por_hat,3),'Fraction = ',np.round(var_por_hat/var_por,3))\n",
    "print('Variance LogPerm =',np.round(var_logperm,3),', Variance Reduced Dimensional LogPerm =',np.round(var_logperm_hat,3),'Fraction = ',np.round(var_logperm_hat/var_logperm,3))\n",
    "print('Total Variance =',np.round(var_por + var_logperm,3), ', Total Variance Reduced Dimension =',np.round(var_por_hat+var_logperm_hat,3),'Fraction = ',np.round((var_por_hat+var_logperm_hat)/(var_por+var_logperm),3))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We got a model that explains 89.6% of the variance for both porosity and log permeability.\n",
    "\n",
    "#### Return to the original 6 predictors / features\n",
    "\n",
    "We will go back to the original data file and this time extract all 6 predictor variables and the first 500 samples.  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "my_data_f6 = my_data.iloc[0:500,0:6]                      # extract the 6 predictors, 500 samples"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "It is a good idea to start with the summary statistics for our data."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "my_data_f6.describe().transpose()                         # calculate summary statistics for the data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's also calculate a correlation matrix and view it. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "corr_matrix = np.corrcoef(my_data_f6, rowvar = False)\n",
    "print(np.around(corr_matrix,2))                           # print the correlation matrix to 2 decimals"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We will need to standardize each variable to have a mean of zero and a variance of one.  Let's do that and check the results. In the console below we print all the initial and standardized means and variances for all 6 predictors. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.preprocessing import StandardScaler\n",
    "\n",
    "features = ['Por','LogPerm','AI','Brittle','TOC','VR']\n",
    "x_f6 = my_data_f6.loc[:,features].values\n",
    "mu_f6 = np.mean(x_f6, axis=0)\n",
    "sd_f6 = np.std(x_f6, axis=0)\n",
    "x_f6 = StandardScaler().fit_transform(x_f6)\n",
    " \n",
    "print(\"Original Means\", features[:], np.round(mu_f6[:],2)) \n",
    "print(\"Original StDevs\", features[:],np.round(sd_f6[:],2)) \n",
    "print('Mean Transformed =',features[:],np.round(x.mean(axis=0),2))\n",
    "print('Variance Transformed Por =',features[:],np.round(x.var(axis=0),2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We whould also check the univariate distributions for each variable."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "f, (ax6,ax7,ax8,ax9,ax10,ax11) = plt.subplots(1, 6, sharey=True, figsize=(15,2))\n",
    "ax6.hist(x_f6[:,0], alpha = 0.8, color = 'darkorange', edgecolor = 'black', bins=20); ax6.set_title('Std. Porosity'); ax6.set_xlim(-5,5)\n",
    "ax7.hist(x_f6[:,1], alpha = 0.8, color = 'darkorange', edgecolor = 'black', bins=20); ax7.set_title('Std. Log[Perm.]'); ax7.set_xlim(-5,5)\n",
    "ax8.hist(x_f6[:,2], alpha = 0.8, color = 'darkorange', edgecolor = 'black', bins=20); ax8.set_title('Std. Acoustic Imped.'); ax8.set_xlim(-5,5)\n",
    "ax9.hist(x_f6[:,3], alpha = 0.8, color = 'darkorange', edgecolor = 'black', bins=20); ax9.set_title('Std. Brittleness'); ax9.set_xlim(-5,5)\n",
    "ax10.hist(x_f6[:,4], alpha = 0.8, color = 'darkorange', edgecolor = 'black', bins=20); ax10.set_title('Std. Total Organic C'); ax10.set_xlim(-5,5)\n",
    "ax11.hist(x_f6[:,5], alpha = 0.8, color = 'darkorange', edgecolor = 'black', bins=20); ax11.set_title('Std. Vit. Reflectance'); ax11.set_xlim(-5,5)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The summary statistics and distributions look good.  No obvious missing data, gaps, significant truncations, spikes or outliers.  We are ready to peform principal component analysis on our 6 features."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "n_components = 6\n",
    "pca_f6 = PCA(n_components=n_components)\n",
    "pca_f6.fit(x_f6)\n",
    "\n",
    "print(np.round(pca_f6.components_,3))                     # visualize the component loadings"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's look at the component loadings first.  Each row is a component, top row is the first principal component (PC1), next row is the second principal component (PC2) up to the last row the sixth principal component (PC6).  The columns are the features ordered from 'Por', 'LogPerm', 'AI', 'Brittle', 'TOC', to 'VR'.\n",
    "\n",
    "First principal component is mainly composed of porosity, log permeability, acoustic impedanced and total organic carbon, suggesting that the way they vary together is responsible for much of the variance.  The next principle component is mainly composed of vitrinite reflectance.  The third principal coordinate is mainly composed of brittleness and so on.\n",
    "\n",
    "#### Scree Plot to Support Number of Dimensions to Retain\n",
    "\n",
    "To assist in this interpretation we should consider the variance contributions from each principal component."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print('Variance explained by PC1 thru PC6 =', np.round(pca_f6.explained_variance_ratio_,3))\n",
    "\n",
    "f, (ax10, ax11) = plt.subplots(1, 2,figsize=(15,6))\n",
    "f.subplots_adjust(wspace=0.5,hspace = 0.3)\n",
    "\n",
    "ax10.plot(np.arange(1,7,1),pca_f6.explained_variance_ratio_*100,color='darkorange',alpha=0.8)\n",
    "ax10.scatter(np.arange(1,7,1),pca_f6.explained_variance_ratio_*100,color='darkorange',alpha=0.8,edgecolor='black')\n",
    "ax10.set_xlabel('Principal Component'); ax10.set_ylabel('Variance Explained'); ax10.set_title('Variance Explained by Principal Component')\n",
    "fmt = '%.0f%%' # Format you want the ticks, e.g. '40%'\n",
    "yticks = mtick.FormatStrFormatter(fmt); ax10.set_xlim(1,6); ax10.set_ylim(0,100.0)\n",
    "ax10.yaxis.set_major_formatter(yticks)\n",
    "\n",
    "ax11.plot(np.arange(1,7,1),np.cumsum(pca_f6.explained_variance_ratio_*100),color='darkorange',alpha=0.8)\n",
    "ax11.scatter(np.arange(1,7,1),np.cumsum(pca_f6.explained_variance_ratio_*100),color='darkorange',alpha=0.8,edgecolor='black')\n",
    "ax11.plot([1,6],[95,95], color='black',linestyle='dashed')\n",
    "ax11.set_xlabel('Principal Component'); ax11.set_ylabel('Cumulative Variance Explained'); ax11.set_title('Cumulative Variance Explained by Principal Component')\n",
    "fmt = '%.0f%%' # Format you want the ticks, e.g. '40%'\n",
    "yticks = mtick.FormatStrFormatter(fmt); ax11.set_xlim(1,6); ax11.set_ylim(0,100.0); ax11.annotate('95% variance explained',[4.05,90])\n",
    "ax11.yaxis.set_major_formatter(yticks)\n",
    "\n",
    "# plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can see that about 46% of the variance is described by the 1st principal component and then about 25% is described by the 2nd principal component etc.  \n",
    "\n",
    "#### Independence of Principal Component Scores\n",
    "\n",
    "Let's check the pairwise feature correlations before and after the projection."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print('\\nCorrelation Matrix of the 6 original features components:')\n",
    "print(np.round(np.corrcoef(x_f6, rowvar = False),2))\n",
    "\n",
    "print('\\nCorrelation Matrix of the 6 principle components\\' scores:')\n",
    "print(np.round(np.corrcoef(pca_f6.transform(x_f6), rowvar = False),2))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The new projected features (even without dimensionality reduction, $p=m$) all have pairwise correlations of 0.0! \n",
    "\n",
    "* all the projected features are linearly independent of each other\n",
    "\n",
    "#### Reduced Dimensionality Impact on a 2 Feature Relationship\n",
    "\n",
    "It would be interesting to look just at the porosity vs. log permeability bivariate relationship when we retain $1,\\ldots,6$ principal components.  \n",
    "\n",
    "* to do this we use matrix math to reverse with PCA and the standardization with various number of principal component and then plot the scattter plots of log permeability vs. porosity."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "nComp = 6\n",
    "xhat_6d = np.dot(pca_f6.transform(x_f6)[:,:nComp], pca_f6.components_[:nComp,:])\n",
    "xhat_6d = sd_f6*xhat_6d + mu_f6\n",
    "\n",
    "nComp = 5\n",
    "xhat_5d = np.dot(pca_f6.transform(x_f6)[:,:nComp], pca_f6.components_[:nComp,:])\n",
    "xhat_5d = sd_f6*xhat_5d + mu_f6\n",
    "\n",
    "nComp = 4\n",
    "xhat_4d = np.dot(pca_f6.transform(x_f6)[:,:nComp], pca_f6.components_[:nComp,:])\n",
    "xhat_4d = sd_f6*xhat_4d + mu_f6\n",
    "\n",
    "nComp = 3\n",
    "xhat_3d = np.dot(pca_f6.transform(x_f6)[:,:nComp], pca_f6.components_[:nComp,:])\n",
    "xhat_3d = sd_f6*xhat_3d + mu_f6\n",
    "\n",
    "nComp = 2\n",
    "xhat_2d = np.dot(pca_f6.transform(x_f6)[:,:nComp], pca_f6.components_[:nComp,:])\n",
    "xhat_2d = sd_f6*xhat_2d + mu_f6\n",
    "\n",
    "nComp = 1\n",
    "xhat_1d = np.dot(pca_f6.transform(x_f6)[:,:nComp], pca_f6.components_[:nComp,:])\n",
    "xhat_1d = sd_f6*xhat_1d + mu_f6\n",
    "\n",
    "f, (ax12, ax13, ax14, ax15, ax16, ax17, ax18) = plt.subplots(1, 7,figsize=(20,20))\n",
    "f.subplots_adjust(wspace=0.7)\n",
    "\n",
    "ax12.scatter(my_data_f6[\"Por\"],my_data_f6[\"LogPerm\"],s=None, c=\"darkorange\",marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.2, linewidths=1.0, edgecolors=\"black\")\n",
    "ax12.set_title('Original Data'); ax12.set_xlabel('Por'); ax12.set_ylabel('LogPerm')\n",
    "ax12.set_ylim(0.0,3.0); ax12.set_xlim(8,22); ax12.set_aspect(4.0); \n",
    "\n",
    "ax13.scatter(xhat_1d[:,0],xhat_1d[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.2, linewidths=1.0, edgecolors=\"black\")\n",
    "ax13.set_title('1 Principal Component'); ax13.set_xlabel('Por'); ax13.set_ylabel('LogPerm')\n",
    "ax13.set_ylim(0.0,3.0); ax13.set_xlim(8,22); ax13.set_aspect(4.0)\n",
    "\n",
    "ax14.scatter(xhat_2d[:,0],xhat_2d[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.2, linewidths=1.0, edgecolors=\"black\")\n",
    "ax14.set_title('2 Principal Components'); ax14.set_xlabel('Por'); ax14.set_ylabel('LogPerm')\n",
    "ax14.set_ylim(0.0,3.0); ax14.set_xlim(8,22); ax14.set_aspect(4.0)\n",
    "\n",
    "ax15.scatter(xhat_3d[:,0],xhat_3d[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.2, linewidths=1.0, edgecolors=\"black\")\n",
    "ax15.set_title('3 Principal Components'); ax15.set_xlabel('Por'); ax15.set_ylabel('LogPerm')\n",
    "ax15.set_ylim(0.0,3.0); ax15.set_xlim(8,22); ax15.set_aspect(4.0)\n",
    "\n",
    "ax16.scatter(xhat_4d[:,0],xhat_4d[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.2, linewidths=1.0, edgecolors=\"black\")\n",
    "ax16.set_title('4 Principal Components'); ax16.set_xlabel('Por'); ax16.set_ylabel('LogPerm')\n",
    "ax16.set_ylim(0.0,3.0); ax16.set_xlim(8,22); ax16.set_aspect(4.0)\n",
    "\n",
    "ax17.scatter(xhat_5d[:,0],xhat_5d[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.2, linewidths=1.0, edgecolors=\"black\")\n",
    "ax17.set_title('5 Principal Components'); ax17.set_xlabel('Por'); ax17.set_ylabel('LogPerm')\n",
    "ax17.set_ylim(0.0,3.0); ax17.set_xlim(8,22); ax17.set_aspect(4.0)\n",
    "\n",
    "ax18.scatter(xhat_6d[:,0],xhat_6d[:,1],s=None, c=\"darkorange\", marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=0.2, linewidths=1.0, edgecolors=\"black\")\n",
    "ax18.set_title('6 Principal Components'); ax18.set_xlabel('Por'); ax18.set_ylabel('LogPerm')\n",
    "ax18.set_ylim(0.0,3.0); ax18.set_xlim(8,22); ax18.set_aspect(4.0)\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Very interesting to watch the accuracy of the bivariate relationship between log permeability and porosity imporve as we include more components.  Let's check the variances.  \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "print('1 Principal Component : Variance Por =',np.round(np.var(xhat_1d[:,0])/(sd_f6[0]*sd_f6[0]),2),' Variance Log Perm = ',np.round(np.var(xhat_1d[:,1])/(sd_f6[1]*sd_f6[1]),2))\n",
    "\n",
    "print('2 Principal Components: Variance Por =',np.round(np.var(xhat_2d[:,0])/(sd_f6[0]*sd_f6[0]),2),' Variance Log Perm = ',np.round(np.var(xhat_2d[:,1])/(sd_f6[1]*sd_f6[1]),2))\n",
    "\n",
    "print('3 Principal Components: Variance Por =',np.round(np.var(xhat_3d[:,0])/(sd_f6[0]*sd_f6[0]),2),' Variance Log Perm = ',np.round(np.var(xhat_3d[:,1])/(sd_f6[1]*sd_f6[1]),2))\n",
    "\n",
    "print('4 Principal Components: Variance Por =',np.round(np.var(xhat_4d[:,0])/(sd_f6[0]*sd_f6[0]),2),' Variance Log Perm = ',np.round(np.var(xhat_4d[:,1])/(sd_f6[1]*sd_f6[1]),2))\n",
    "\n",
    "print('5 Principal Components: Variance Por =',np.round(np.var(xhat_5d[:,0])/(sd_f6[0]*sd_f6[0]),2),'  Variance Log Perm = ',np.round(np.var(xhat_5d[:,1])/(sd_f6[1]*sd_f6[1]),2))\n",
    "\n",
    "print('6 Principal Components: Variance Por =',np.round(np.var(xhat_6d[:,0])/(sd_f6[0]*sd_f6[0]),2),'  Variance Log Perm = ',np.round(np.var(xhat_6d[:,1])/(sd_f6[1]*sd_f6[1]),2))\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "This is interesting.  With the first principal component we decribe 86% of the porosity variance. The next two principal components do not provide much assistance. Then there is a jump with the 4th and 5th principal components.  \n",
    "\n",
    "* of course, the problem is 6 dimensional, not just porosity vs. log permeability, but is it interesting to see the relationship between number of principal components and variance variance retianed by-feature  \n",
    "\n",
    "* principal components do not uniformly described each feature\n",
    "\n",
    "#### Reduced Dimensionality Impact on Matrix Scatter Plots of All Features\n",
    "\n",
    "Let's look at the matrix scatter plots for see all of the bivariate combinations.\n",
    "\n",
    "* first some book keeping, we have to put the 6D reduced dimensionality models in DataFrames (there are currently Numpy ndarrays."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "df_1d = pd.DataFrame(data=xhat_1d,columns=features)   \n",
    "df_2d = pd.DataFrame(data=xhat_2d,columns=features)\n",
    "df_3d = pd.DataFrame(data=xhat_3d,columns=features)\n",
    "df_4d = pd.DataFrame(data=xhat_4d,columns=features)\n",
    "df_5d = pd.DataFrame(data=xhat_5d,columns=features)\n",
    "df_6d = pd.DataFrame(data=xhat_6d,columns=features)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can go ahead and produce the matrix scatter plots with these DataFrames. It is very interesting to see the accuracy of the bivariate plots improve as we add principal components.  Also, with only two principal components we capture some of the bivariate relationships quite well for some of the variable pairs."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "scrolled": false
   },
   "outputs": [],
   "source": [
    "fig = plt.figure()\n",
    "\n",
    "pd_plot.scatter_matrix(my_data_f6, alpha = 0.1,           # pandas matrix scatter plot\n",
    "    figsize=(6, 6),color = 'black', hist_kwds={'color':['grey']})\n",
    "plt.suptitle('Original Data')\n",
    "\n",
    "pd_plot.scatter_matrix(df_1d, alpha = 0.1,                # pandas matrix scatter plot\n",
    "    figsize=(6, 6),color = 'black', hist_kwds={'color':['grey']})\n",
    "plt.suptitle('1 Principal Component')\n",
    "\n",
    "pd_plot.scatter_matrix(df_2d, alpha = 0.1,                # pandas matrix scatter plot\n",
    "    figsize=(6, 6),color = 'black', hist_kwds={'color':['grey']})\n",
    "plt.suptitle('2 Principal Components')\n",
    "\n",
    "pd_plot.scatter_matrix(df_3d, alpha = 0.1,                # pandas matrix scatter plot\n",
    "    figsize=(6, 6),color = 'black', hist_kwds={'color':['grey']})\n",
    "plt.suptitle('3 Principal Components')\n",
    "\n",
    "pd_plot.scatter_matrix(df_4d, alpha = 0.1,                # pandas matrix scatter plot\n",
    "    figsize=(6, 6),color = 'black', hist_kwds={'color':['grey']})\n",
    "plt.suptitle('4 Principal Components')\n",
    "\n",
    "pd_plot.scatter_matrix(df_5d, alpha = 0.1,                # pandas matrix scatter plot\n",
    "    figsize=(6, 6),color = 'black', hist_kwds={'color':['grey']})\n",
    "plt.suptitle('5 Principal Components')\n",
    "\n",
    "pd_plot.scatter_matrix(df_6d, alpha = 0.1,                # pandas matrix scatter plot\n",
    "    figsize=(6, 6),color = 'black', hist_kwds={'color':['grey']})\n",
    "plt.suptitle('6 Principal Components')\n",
    "\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### Principal Components Analysis on Uncorrelated Data\n",
    "\n",
    "Let's try one more test, principal components analysis on uncorrelated data.  \n",
    "\n",
    "* we generate a large number of random samples (n is large) for 5 feature.\n",
    "\n",
    "* we will assume a uniform distribution"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": [
    "x_rand = np.random.rand(10000,5); df_x_rand = pd.DataFrame(x_rand)\n",
    "print('Variance of original features: ', np.round(np.var(x_rand, axis = 0),2))\n",
    "print('Proportion of variance of original features: ', np.round(np.var(x_rand, axis = 0)/np.sum(np.var(x_rand, axis = 0)),2))\n",
    "print('Correlation Matrix of original features:\\n'); print(np.round(np.cov(x_rand, rowvar = False),2)); print()\n",
    "\n",
    "pd_plot.scatter_matrix(df_x_rand, alpha = 0.1,                # pandas matrix scatter plot\n",
    "    figsize=(6, 6),color = 'black', hist_kwds={'color':['grey']})\n",
    "plt.suptitle('Original Features')\n",
    "\n",
    "pca_rand = PCA(n_components=5)\n",
    "pca_rand.fit(x_rand)\n",
    "print('PCA Variance Explained ', np.round(pca_rand.explained_variance_ratio_,2))  \n",
    "\n",
    "scores_x_rand = pca_rand.transform(x_rand); df_scores_x_rand = pd.DataFrame(scores_x_rand)\n",
    "\n",
    "print('\\nCorrelation Matrix of scores:\\n'); print(np.round(np.cov(scores_x_rand, rowvar = False),2)); print()\n",
    "\n",
    "pd_plot.scatter_matrix(df_scores_x_rand, alpha = 0.1,                # pandas matrix scatter plot\n",
    "    figsize=(6, 6),color = 'black', hist_kwds={'color':['grey']})\n",
    "plt.suptitle('Principal Component Scores')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "What happenned with principal component analysis applied to uncorrelated, uniformly distributed features?\n",
    "\n",
    "* all the principal components described the same amount of variance\n",
    "\n",
    "* there is no opportunity for dimensionality reduction through feature projection\n",
    "\n",
    "* the linear combination of independent random variables invokes the central limit theorem, the principle component scores tend to Gaussian distribution.\n",
    "\n",
    "There are so many more tests that one could attempt to gain experience with principal components analysis. I'll end here for brevity, but I invite you to continue. Consider, on your own apply other data sets or attempting methods with PCA kernels or regression.  I hope you found this tutorial useful. I'm always happy to discuss geostatistics, statistical modeling, uncertainty modeling and machine learning,\n",
    "\n",
    "#### Comments\n",
    "\n",
    "This was a basic demonstration of principal component analysis for dimensional reduction. A lot more could be done, for example, there are methods that reduce the dimensionality, and remove dependency to allow for independent variable modeling workflows etc.\n",
    "\n",
    "I have other demonstrations on the basics of working with DataFrames, ndarrays, univariate statistics, plotting data, declustering, data transformations, trend modeling and many other workflows available at https://github.com/GeostatsGuy/PythonNumericalDemos and https://github.com/GeostatsGuy/GeostatsPy. \n",
    "  \n",
    "I hope this was helpful,\n",
    "\n",
    "*Michael*\n",
    "\n",
    "#### The Author:\n",
    "\n",
    "### Michael Pyrcz, Associate Professor, University of Texas at Austin \n",
    "*Novel Data Analytics, Geostatistics and Machine Learning Subsurface Solutions*\n",
    "\n",
    "With over 17 years of experience in subsurface consulting, research and development, Michael has returned to academia driven by his passion for teaching and enthusiasm for enhancing engineers' and geoscientists' impact in subsurface resource development. \n",
    "\n",
    "For more about Michael check out these links:\n",
    "\n",
    "#### [Twitter](https://twitter.com/geostatsguy) | [GitHub](https://github.com/GeostatsGuy) | [Website](http://michaelpyrcz.com) | [GoogleScholar](https://scholar.google.com/citations?user=QVZ20eQAAAAJ&hl=en&oi=ao) | [Book](https://www.amazon.com/Geostatistical-Reservoir-Modeling-Michael-Pyrcz/dp/0199731446) | [YouTube](https://www.youtube.com/channel/UCLqEr-xV-ceHdXXXrTId5ig)  | [LinkedIn](https://www.linkedin.com/in/michael-pyrcz-61a648a1)\n",
    "\n",
    "#### Want to Work Together?\n",
    "\n",
    "I hope this content is helpful to those that want to learn more about subsurface modeling, data analytics and machine learning. Students and working professionals are welcome to participate.\n",
    "\n",
    "* Want to invite me to visit your company for training, mentoring, project review, workflow design and / or consulting? I'd be happy to drop by and work with you! \n",
    "\n",
    "* Interested in partnering, supporting my graduate student research or my Subsurface Data Analytics and Machine Learning consortium (co-PIs including Profs. Foster, Torres-Verdin and van Oort)? My research combines data analytics, stochastic modeling and machine learning theory with practice to develop novel methods and workflows to add value. We are solving challenging subsurface problems!\n",
    "\n",
    "* I can be reached at mpyrcz@austin.utexas.edu.\n",
    "\n",
    "I'm always happy to discuss,\n",
    "\n",
    "*Michael*\n",
    "\n",
    "Michael Pyrcz, Ph.D., P.Eng. Associate Professor The Hildebrand Department of Petroleum and Geosystems Engineering, Bureau of Economic Geology, The Jackson School of Geosciences, The University of Texas at Austin\n",
    "\n",
    "I have other demonstrations on the basics of working with DataFrames, ndarrays, univariate statistics, plotting data, declustering, data transformations, trend modeling and many other workflows available at https://github.com/GeostatsGuy/PythonNumericalDemos and https://github.com/GeostatsGuy/GeostatsPy. \n",
    "  \n",
    "I hope this was helpful,\n",
    "\n",
    "*Michael*\n",
    "\n",
    "Michael Pyrcz, Ph.D., P.Eng. Associate Professor The Hildebrand Department of Petroleum and Geosystems Engineering, Bureau of Economic Geology, The Jackson School of Geosciences, The University of Texas at Austin\n",
    "\n",
    "#### More Resources Available at: [Twitter](https://twitter.com/geostatsguy) | [GitHub](https://github.com/GeostatsGuy) | [Website](http://michaelpyrcz.com) | [GoogleScholar](https://scholar.google.com/citations?user=QVZ20eQAAAAJ&hl=en&oi=ao) | [Book](https://www.amazon.com/Geostatistical-Reservoir-Modeling-Michael-Pyrcz/dp/0199731446) | [YouTube](https://www.youtube.com/channel/UCLqEr-xV-ceHdXXXrTId5ig)  | [LinkedIn](https://www.linkedin.com/in/michael-pyrcz-61a648a1)\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
